import re


def can_form_template(template, title):
    # 使用正则表达式找出模板中的所有通配符
    placeholders = re.findall(r'\{[^{}]*\}', template)
    # 创建一个模式，将通配符替换为可以匹配任意字符的正则表达式
    pattern = re.escape(template)
    # 对模板字符串进行转义，以便在正则表达式中使用
    for p in placeholders:
        pattern = pattern.replace(re.escape(p), '(.*?)')
    # 将每个通配符替换为非贪婪匹配
    # 在模式的开始和结束添加锚点，确保整个字符串必须完全匹配
    pattern = '^' + pattern + '$'
    # 尝试用创建的模式匹配标题
    return re.match(pattern, title) is not None


def solution(n, template, titles):
    results = []
    for title in titles:
        if can_form_template(template, title):
            results.append("True")
        else:
            results.append("False")
    return ','.join(results)


if __name__ == "__main__":
    #  You can add more test cases here
    testTitles1 = ["adcdcefdfeffe", "adcdcefdfeff", "dcdcefdfeffe", "adcdcfe"]
    testTitles2 = ["CLSomGhcQNvFuzENTAMLCqxBdj", "CLSomNvFuXTASzENTAMLCqxBdj", "CLSomFuXTASzExBdj", "CLSoQNvFuMLCqxBdj",
                   "SovFuXTASzENTAMLCq", "mGhcQNvFuXTASzENTAMLCqx"]
    testTitles3 = ["abcdefg", "abefg", "efg"]

    print(solution(4, "ad{xyz}cdc{y}f{x}e", testTitles1) == "True,False,False,True")
    print(solution(6, "{xxx}h{cQ}N{vF}u{XTA}S{NTA}MLCq{yyy}", testTitles2) == "False,False,False,False,False,True")
    print(solution(3, "a{bdc}efg", testTitles3) == "True,True,False")

"""
代码解释：
can_form_template 函数：
re.findall(r'\{[^{}]*\}', template)：找出模板中所有的通配符，通配符由花括号 {} 包围。
re.escape(template)：对模板字符串进行转义，以便在正则表达式中使用。
pattern.replace(re.escape(p), '(.*?)')：将每个通配符替换为正则表达式中的非贪婪匹配模式 (.*?)。
pattern = '^' + pattern + '$'：在模式的开始和结束添加锚点，确保整个字符串必须完全匹配。
re.match(pattern, title)：尝试用创建的模式匹配标题。

solution 函数：

results = []：创建一个空列表，用于存储每个标题的匹配结果。
for title in titles：遍历每个标题。
can_form_template(template, title)：对每个标题调用 can_form_template 函数。
results.append("True") 或 results.append("False")：根据匹配结果添加 "True" 或 "False"。
','.join(results)：将结果列表转换为逗号分隔的字符串。

测试用例：

testTitles1、testTitles2、testTitles3：定义了三个测试用例。
print 语句：打印测试结果，并与预期结果进行比较。
这段代码通过正则表达式来动态匹配任意长度的字符串，从而检查每个标题是否可以通过替换模板中的通配符生成。
"""
